import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    goodNum: [],   //要添加的数量
    indexBool: true,  
    nameBool: true, //header组件，用户名是否显示
    userName: '', //header组件，用户名
    regionData: [], //楼盘地区的全部数据
    commodityOrder: [], //填写订单的商品数据
    paymentOrder: {},   //支付订单信息
    orderDetails: {},   // 订单详情
    PSList: {},   // 订单支付成功返回的数据
    wechatPayment: '',  // 微信支付地址
    Oevaluate: [],      // 订单评价的数据
    OrderData: {},      // 兑换积分商品的订单数据
    pointsOrderData: {},      // 积分商品，支付的数据
    SMS: null,      // 店铺手机号码
  },
  getters: {
    // header页面的购物车标记数量
    goodsValue: state => {
      let nums = 0;
      for( let i = 0; i < state.goodNum.length; i++) {
        nums += state.goodNum[i].num;
      }
      return nums;
    },
    // header页面的购物车数量标记，是否有值，显示或隐藏
    badgeBool: state => {
      let nums = 0;
      let bool = true;
      for( let i = 0; i < state.goodNum.length; i++) {
        nums += state.goodNum[i].num;
      }
      if(nums > 0) {
        bool = false
      } else {
        bool = true
      }
      return bool
    }
  },
  mutations: {
    // 购物车，要添加的数量和id 对象
    goods(state, data) {
      state.goodNum = data;
    },
    index(state, data) {
      state.indexBool = data;
    },
    // header组件，用户名
    header(state, data) {
      state.nameBool = data.nameBool;
      state.userName = data.userName;
    },
    // 楼盘地区数据
    region(state, data) {
      state.regionData = data;
    },
    // 选中的商品去结算,填写订单商品数据
    checkS(state, data) {
      state.commodityOrder = data;
    },
    // 订单信息，购物车到支付页面，订单页面到支付页面的数据
    order(state, data) {
      state.paymentOrder = data;
    },
    // 订单页面到订单详情页面的数据
    orderDET(state, data) {
      state.orderDetails = data;
    },
    // 订单付款成功返回的数据
    paymentSuccessList(state, data) {
      state.PSList = data;
    },
    // 支付成功后，下单短信通知
    orderSMS(state, data) {
      state.SMS = data;
    },
    // 微信支付地址
    weixin(state, data) {
      state.wechatPayment = data;
    },
    // 订单评价的数据
    orderEvaluation(state, data) {
      state.Oevaluate = data;
    },
    // 积分商品的订单数据
    pointsOrder(state, data) {
      state.OrderData = data;
    },
    // 积分商品，支付页面数据
    createOrder(state, data) {
      state.pointsOrderData = data;
    },
  },
  actions: {},
  modules: {}
});
